package com.ruoyi.his.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import com.ruoyi.his.domain.HisNurse;
import com.ruoyi.his.domain.OdsHospitalAll;
import com.ruoyi.his.domain.OdsHospitalData;
import org.apache.ibatis.annotations.Param;

/**
 * 【请填写功能名称】Mapper接口
 * 
 * @author Alan
 * @date 2024-03-24
 */
public interface HisNurseMapper extends BaseMapper<HisNurse>
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public HisNurse selectHisNurseById(Long id);


    /**
     * 查询【请填写功能名称】列表
     * 
     * @param hisNurse 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<HisNurse> selectHisNurseList(HisNurse hisNurse);
    public List<HisNurse> selectByReg(String reg);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param hisNurse 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<HisNurse> selectByIdCard(HisNurse hisNurse);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param hisNurse 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<HisNurse> selectBySeniority(HisNurse hisNurse);

    /**
     * 新增【请填写功能名称】
     * 
     * @param hisNurse 【请填写功能名称】
     * @return 结果
     */
    public int insertHisNurse(HisNurse hisNurse);

    /**
     * 修改【请填写功能名称】
     * 
     * @param hisNurse 【请填写功能名称】
     * @return 结果
     */
    public int updateHisNurse( HisNurse hisNurse);

    public int updateByCode(HisNurse hisNurse);

    /**
     * 删除【请填写功能名称】
     * 
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteHisNurseById(Long id);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHisNurseByIds(Long[] ids);

    public List<HisNurse> selectByIdCard(String idCard);

    public List<HisNurse> selectByIdLicence(String idCard);
    public HisNurse selectByLicence(String licence);

    /**
     * 根据资格证号查签名为空
     *
     * @return 结果
     */
    public List<HisNurse> selectBySignatureIsNull(String registerNumber);

    /**
     * 根据资格证号查签名不为空
     *
     * @return 结果
     */
    public HisNurse selectBySignatureIsNotNull(String registerNumber);
    /**
     * 根据主键更新签名和nurse_id
     *
     * @return 结果
     */
    public int updateByUncode(HisNurse nurse);

    /**
     * 根据身份证号和签名更新
     *
     * @return 结果
     */
    public int updateByIdCard(HisNurse nurse);
    List<HisNurse> selectNurBySig(String signature);

    /**
     * 修改【请填写功能名称】
     *
     * @param signature 【签名】
     * @return 结果
     */
    public List<HisNurse> checkSameName(String signature);


    /**
     * 根据批量更新
     *
     * @return 结果
     */
    public int updateOfListIdCard(List<HisNurse> list);

    /**
     * 根据批量更新
     *
     * @return 结果
     */
    public int updateOfListLicence(List<HisNurse> list);

    /**
     * 根据批量更新
     *
     * @return 结果
     */
    public int updateOfListSeniority(List<HisNurse> list);

    /**
     * 根据批量更新
     *
     * @return 结果
     */
    public int updateOfListNid(List<HisNurse> list);
    /**
     * 批量插入
     *
     * @param list 【请填写功能名称】
     * @return 结果
     */
    public int InsertOfList(List<HisNurse> list);

    /**
     * 删除重复的nurse_id只保留最老的一条
     *
     * @return 结果
     */
    public int deleteKeepOneByNid();

    /**
     * 删除重复的id_card只保留最老的一条
     *
     * @return 结果
     */
    public int deleteKeepOneByIdCard();

    /**
     * 删除重复的执业证号只保留最老的一条
     *
     * @return 结果
     */
    public int deleteKeepOneBySeniority();

    /**
     * 删除重复的执业证号只保留最老的一条
     *
     * @return 结果
     */
    public int deleteKeepOneByNurseLicence();

    List<HisNurse> selectBySigAndHos(@Param("signature") String signature, @Param("hospitalId") String hospitalId);
}
